4ca00f9f3dda302fa0671560d1915a233c84e78c,h2o-algos/src/main/java/hex/deeplearning/DeepLearningModel.java,DeepLearningModel,doScoring,#Frame#Frame#Key#Key#,1613

Before Change


            Log.info("Mean reconstruction error on training data: " + l2.mean() + "\n");
            mse_frame.delete();

            hex.ModelMetricsAutoEncoder mm1 = (ModelMetricsAutoEncoder)ModelMetrics.getFromDKV(this,ftrain);
            assert(err.scored_train._mse == l2.mean());
            _output._training_metrics = mm1;
          }

After Change


            final Vec l2 = mse_frame.anyVec();
            Log.info("Mean reconstruction error on training data: " + l2.mean() + "\n");
            mse_frame.delete();
            ModelMetrics mtrain = ModelMetrics.getFromDKV(this,ftrain); //updated by model.score
            _output._training_metrics = mtrain;
            err.scored_train = new ScoredClassifierRegressor(mtrain);
          }
          if (ftest != null) {
            final Frame mse_frame = scoreAutoEncoder(ftest, Key.make());
            final Vec l2 = mse_frame.anyVec();
            Log.info("Mean reconstruction error on validation data: " + l2.mean() + "\n");
            mse_frame.delete();
            ModelMetrics mtest = ModelMetrics.getFromDKV(this,ftest); //updated by model.score
            _output._validation_metrics = mtest;
            err.scored_valid = new ScoredClassifierRegressor(mtest);
          }
        } else {
          if (printme) Log.info("Scoring the model.");
          // compute errors
          final String m = model_info().toString();
          if (m.length() > 0) Log.info(m);
          final Frame trainPredict = score(ftrain);
          trainPredict.delete();

          hex.ModelMetrics mtrain = ModelMetrics.getFromDKV(this,ftrain);
          _output._training_metrics = mtrain;
          err.scored_train = new ScoredClassifierRegressor(mtrain);
          hex.ModelMetrics mtest = null;

          hex.ModelMetricsSupervised mm1 = (ModelMetricsSupervised)ModelMetrics.getFromDKV(this,ftrain);
          if (mm1 instanceof ModelMetricsBinomial) {
            ModelMetricsBinomial mm = (ModelMetricsBinomial)(mm1);
            err.train_confusion_matrix = mm.cm();
          }
          else if (mm1 instanceof ModelMetricsMultinomial) {
            ModelMetricsMultinomial mm = (ModelMetricsMultinomial)(mm1);
            err.train_confusion_matrix = mm.cm();
            err.train_hitratio = mm._hit_ratios;
          }
          if (get_params()._score_training_samples != 0 && get_params()._score_training_samples < ftrain.numRows()) {
            _output._training_metrics._description = "Metrics reported on " + ftrain.numRows() + " training set samples";
          }

          if (ftest != null) {
            Frame validPred = score(ftest);
            validPred.delete();
            if (ftest != null) {
              mtest = ModelMetrics.getFromDKV(this, ftest);
              _output._validation_metrics = mtest;
              err.scored_valid = new ScoredClassifierRegressor(mtest);
            }